﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace RadowCore.Models
{
    /// <summary>
    /// an abstract tree node which has single method (evaluate)
    /// </summary>
    abstract class TreeNode
    {

        /// <summary>
        /// Evaluates the node value.
        /// </summary>
        /// <param name="evaluationData">The context data needed to evaluate</param>
        /// <param name="visitedNodes">The path which represents the list of visited nodes</param>
        /// <returns>Returns a boolean value corresponds to evaluation results of the node.</returns>
        public abstract bool Evaluate(List<PGNode> visitedNodes);
    }
}
